Apache Commons IO লাইব্রেরি Java-তে ইনপুট এবং আউটপুট (IO) স্ট্রিম অপারেশনকে সহজ এবং কার্যকরী করে তোলে। এটি InputStream এবং OutputStream এর মাধ্যমে ডেটা পরিচালনা করার জন্য কিছু শক্তিশালী টুল সরবরাহ করে, যার মাধ্যমে আপনি ফাইল পড়া, লেখা, কপি করা এবং স্ট্রিম সম্পর্কিত অন্যান্য কাজ দ্রুত ও নিরাপদভাবে করতে পারেন।
এই লেখায়, আমরা InputStream এবং OutputStream ব্যবহার করে ডেটা পরিচালনা করার জন্য Apache Commons IO এর কিছু গুরুত্বপূর্ণ ফিচার এবং উদাহরণ আলোচনা করব।
Apache Commons IO লাইব্রেরি এই স্ট্রিম অপারেশনগুলো আরও সহজ ও কার্যকরী করার জন্য কিছু ইউটিলিটি ক্লাস সরবরাহ করে, যেমন IOUtils।
IOUtils ক্লাসটি InputStream এবং OutputStream এর সাথে কাজ করার জন্য অনেক ইউটিলিটি মেথড সরবরাহ করে, যার মাধ্যমে স্ট্রিম কপি, স্ট্রিম ক্লোজ, বাইট অ্যারে থেকে স্ট্রিম তৈরি করা এবং অন্যান্য কাজ করা সম্ভব।
IOUtils.copy() মেথডটি ব্যবহার করে আপনি একটি InputStream থেকে ডেটা কপি করে একটি OutputStream এ লিখতে পারেন। এটি একটি সাধারণ এবং কার্যকরী পদ্ধতি, যা ফাইল কপি বা স্ট্রিমের মধ্যে ডেটা স্থানান্তরের জন্য ব্যবহৃত হয়।
import org.apache.commons.io.IOUtils;
import java.io.*;
public class StreamCopyExample {
public static void main(String[] args) {
try (InputStream inputStream = new FileInputStream("source.txt");
OutputStream outputStream = new FileOutputStream("destination.txt")) {
// Copy data from input stream to output stream
IOUtils.copy(inputStream, outputStream);
System.out.println("Data copied successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
IOUtils.copy(inputStream, outputStream)
মেথডটি source.txt ফাইলের ডেটা destination.txt ফাইলে কপি করে।কখনও কখনও, আপনাকে InputStream থেকে String পড়তে হতে পারে। IOUtils.toString() মেথডটি এই কাজটি খুব সহজভাবে করে দেয়।
import org.apache.commons.io.IOUtils;
import java.io.*;
public class InputStreamToStringExample {
public static void main(String[] args) {
try (InputStream inputStream = new FileInputStream("input.txt")) {
// Convert InputStream to String
String content = IOUtils.toString(inputStream, "UTF-8");
System.out.println("File content: ");
System.out.println(content);
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
IOUtils.toString(inputStream, "UTF-8")
মেথডটি InputStream থেকে String আকারে ডেটা রিড করেছে।IOUtils.write() মেথডটি স্ট্রিং বা বাইট অ্যারে OutputStream এ লেখার জন্য ব্যবহৃত হয়।
import org.apache.commons.io.IOUtils;
import java.io.*;
public class OutputStreamWriteExample {
public static void main(String[] args) {
try (OutputStream outputStream = new FileOutputStream("output.txt")) {
// Write a string to the output stream
String content = "This is a test message.";
IOUtils.write(content, outputStream, "UTF-8");
System.out.println("Data written successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
IOUtils.write(content, outputStream, "UTF-8")
মেথডটি স্ট্রিংকে output.txt ফাইলে লিখেছে।IOUtils.toInputStream() মেথডটি একটি byte array থেকে InputStream তৈরি করতে ব্যবহৃত হয়, যা অন্য কোথাও স্ট্রিম হিসেবে ব্যবহৃত হতে পারে।
import org.apache.commons.io.IOUtils;
import java.io.*;
public class ByteArrayToStreamExample {
public static void main(String[] args) {
try {
// Convert byte array to InputStream
String text = "Hello, Apache Commons IO!";
byte[] byteArray = text.getBytes("UTF-8");
InputStream inputStream = IOUtils.toInputStream(new String(byteArray), "UTF-8");
// Read the content from InputStream
String content = IOUtils.toString(inputStream, "UTF-8");
System.out.println("Content from byte array: " + content);
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
IOUtils.toInputStream()
মেথডটি বাইট অ্যারে থেকে InputStream তৈরি করেছে এবং IOUtils.toString() এর মাধ্যমে সেই স্ট্রিম থেকে ডেটা পড়েছে।IOUtils.closeQuietly() মেথডটি স্ট্রিম সঠিকভাবে ক্লোজ করার জন্য ব্যবহৃত হয়, যাতে কোনো IOException ছুঁড়ে না দেয়। এটি সাধারণত স্ট্রিম ব্যবহারের পর সব ধরনের স্ট্রিম নিরাপদভাবে ক্লোজ করতে সহায়তা করে।
import org.apache.commons.io.IOUtils;
import java.io.*;
public class CloseStreamExample {
public static void main(String[] args) {
InputStream inputStream = null;
try {
inputStream = new FileInputStream("input.txt");
// Process input stream (for example)
String content = IOUtils.toString(inputStream, "UTF-8");
} catch (IOException e) {
e.printStackTrace();
} finally {
// Properly close the input stream
IOUtils.closeQuietly(inputStream);
}
}
}
এখানে:
IOUtils.closeQuietly()
মেথডটি ইনপুট স্ট্রিমটি সঠিকভাবে ক্লোজ করার জন্য ব্যবহৃত হয়েছে।Apache Commons IO লাইব্রেরি InputStream এবং OutputStream এর মাধ্যমে ডেটা পরিচালনা করার জন্য কিছু শক্তিশালী মেথড সরবরাহ করে, যেমন IOUtils.copy(), IOUtils.toString(), IOUtils.write(), IOUtils.toInputStream(), এবং IOUtils.closeQuietly()। এগুলির মাধ্যমে আপনি স্ট্রিমের মধ্যে ডেটা কপি, রিড এবং রাইট করতে পারেন, এবং স্ট্রিম সঠিকভাবে ক্লোজ করতে পারেন। এই ইউটিলিটি মেথডগুলো Java IO স্ট্রিমের ব্যবহারকে আরও সহজ এবং কার্যকরী করে তোলে।
common.read_more